package com.jzo2o.customer.service;

import com.jzo2o.common.model.PageResult;
import com.jzo2o.customer.model.domain.AgencyCertificationAudit;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditAddReqDTO;
import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditPageQueryReqDTO;
import com.jzo2o.customer.model.dto.request.CertificationAuditReqDTO;
import com.jzo2o.customer.model.dto.response.AgencyCertificationAuditResDTO;
import com.jzo2o.customer.model.dto.response.RejectReasonResDTO;

/**
 * <p>
 * 机构认证审核表 服务类
 * </p>
 *
 * @author itcast
 * @since 2025-03-05
 */
public interface IAgencyCertificationAuditService extends IService<AgencyCertificationAudit> {

    /**
     * 机构申请资质认证
     *
     * @param agencyCertificationAuditAddReqDTO 认证申请请求体
     */
    void applyCertification(AgencyCertificationAuditAddReqDTO agencyCertificationAuditAddReqDTO);

    /**
     * 查询最新的驳回原因
     * @return
     */
    RejectReasonResDTO queryCurrentUserLastRejectReason();

    /**
     * 机构资质认证审核
     * @param id                        审核记录id
     * @param certificationAuditReqDTO   审核请求
     */
    void auditCertification(Long id, CertificationAuditReqDTO certificationAuditReqDTO);

    /**
     * 分页查询
     * @param agencyCertificationAuditPageQueryReqDTO 查询条件
     * @return
     */
    PageResult<AgencyCertificationAuditResDTO> pageQuery(AgencyCertificationAuditPageQueryReqDTO agencyCertificationAuditPageQueryReqDTO);
}
